/************************************************************************

								Heroes IV
					  Copyright 2002, The 3DO Company

	------------------------------------------------------------------
  					 combat_action_message_displayer.h

	$Header:  $

	$NoKeywords: $

 ************************************************************************/

#if !defined( COMBAT_ACTION_MESSAGE_DISPLAYER_H_INCLUDED )
#define COMBAT_ACTION_MESSAGE_DISPLAYER_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif

#include <string>
#include "combat_action_message.h"
#include "uncopyable.h"

class t_battlefield;

// ----------------------------------------------------------------------
// The class responsible for handling the display of the message describing
// the current action or animation during combat. The message is displayed
// when display_action_message() is called, and erase (returned to the 
// ready-creature display) when erase_action_message() is called or the
// class is destroyed
// ----------------------------------------------------------------------
class t_combat_action_message_displayer : private t_uncopyable
{
	public:

		t_combat_action_message_displayer( t_battlefield & battlefield );
		virtual ~t_combat_action_message_displayer();

		t_combat_action_message const &	get_action_message() const;
		virtual void					display_action_message( t_combat_action_message const & message );
		virtual void					erase_action_message();

	protected:
		t_battlefield & m_battlefield;

	private:
		bool					m_displaying_message;
		t_combat_action_message m_message; 
};

inline t_combat_action_message const & t_combat_action_message_displayer::get_action_message() const
{
	return m_message;
}

#endif // COMBAT_ACTION_MESSAGE_DISPLAYER_H_INCLUDED
